/* 
1. 连接数据库
2. 启动服务
  使用中间件: 静态资源, bodyParser, 路由器
  使用上ejs
  启动服务
*/

(async () => { // 如果是一个IIFE, 它需要所有代码都都函数内

  const express = require('express')
  const bookRouter = require('./routers/bookRouter')
  // 引入db, 连接数据库
  const db = require('./db')

  // 监视连接成功和失败
  await db()

  // 创建应用对象
  const app = express()
  // 使用中间件: 静态资源, bodyParser, 路由器
  app.use(express.static('public'))
  app.use(express.urlencoded({extended: false}))
  app.use(express.json())
  app.use('/book', bookRouter)

  // 使用上ejs
  app.set('view engine', 'ejs')
  app.set('views', './views')

  // 启动服务
  app.listen('8080', () => {
    console.log('服务启动成功, http://localhost:8080')
  })
})()